import requests
import threading
import pre_download_pic as pdp

# 定义全局的存放所有图片URL的列表
pic_url_list = []


# 下载图片的线程
class DownloadPic(threading.Thread):

    # 重写run方法，让该线程可以执行对应的动作
    def run(self):
        # 定义请求头
        headers = {
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.43',
        }
        # 当图片URL列表不是空的时候就一直取
        while pic_url_list:
            skin = pic_url_list.pop()  # 弹出最后一个元素
            try:
                # 进行请求，得到响应内容（二进制）后，存在jpg文件中
                resp = requests.get(url=skin['main_img'], headers=headers)
                print('当前正在下载：', skin["name"])
                with open(f'picture/{skin["name"]}.jpg', 'wb') as f:
                    f.write(resp.content)
            except:
                pass


def main():
    global pic_url_list
    
    # 调用pre_download_pic模块中的run函数，来获得图片URL列表
    pic_url_list = pdp.run()

    # 实例化创建线程
    for _ in range(5):
        thread = DownloadPic()
        # 启动线程
        thread.start()


if __name__ == '__main__':
    main()
